/* 
    最长公共前缀

    编写一个函数来查找字符串数组中的最长公共前缀。
    如果不存在公共前缀，返回空字符串 ""。

    输入：strs = ["flower","flow","flight"]
    输出："fl"

    输入：strs = ["dog","racecar","car"]
    输出：""
    解释：输入不存在公共前缀。
*/

{
  /**
   * flower
   * flow ==>开始和result比较, 遍历如果发现不同直接改变result ==> result = flow
   * flight ==> 开始和result比较, 此时result为flow, 发现不同直接改变result ==> result = fl
   * flower <== result
   * @param {*} strs
   * @returns
   */
  var longestCommonPrefix = function (strs) {
    if (!strs.length) return "";
    let ans = strs[0];

    for (let i = 1; i < strs.length; i++) {
      let len = strs[i].length > ans.length ? strs[i].length : ans.length;
      for (let j = 0; j < len; j++) {
        if (strs[i].charAt(j) !== ans.charAt(j)) {
          ans = ans.substr(0, j);
          break;
        }
      }
    }
    return ans;
  };

  const strs = ["flower", "flower", "flower", "flower"];
  console.log(longestCommonPrefix(strs));
}
